package TestSpecifications; 

public   class  SpecificationManager {
	
	
	 private static void  setupSpecifications__wrappee__Base  () {
	}

	
	
	 private static void  setupSpecifications__wrappee__Encrypt  () {
		spec1_8 = new Specification1_8();
		spec9 = new Specification9();
		spec6 = new Specification6();
		setupSpecifications__wrappee__Base();
	}

	
	
	 private static void  setupSpecifications__wrappee__AutoResponder  () {
		spec11 = new Specification11();
		setupSpecifications__wrappee__Encrypt();
	}

	
	
	 private static void  setupSpecifications__wrappee__Sign  () {
		spec3 = new Specification3();
		spec4 = new Specification4();
		setupSpecifications__wrappee__AutoResponder();
	}

	
	
	public static void setupSpecifications() {
		spec7 = new Specification7();
		spec27 = new Specification27();
		setupSpecifications__wrappee__Sign();
	}

	
	
	/**
	 * -1 : all Specifications of enabled Features
	 * -2 : no Specifications
	 * else : only specification with given number
	 * @param specificationID
	 * @return
	 */
	public static boolean checkSpecification(int id) {
		if (singleSpecification == -2)
			return false;
		else if (singleSpecification == -1)
			return true;
		else 
			return singleSpecification == id;
	}

	

	private static int singleSpecification = -1;

	

	public static void checkOnlySpecification(int scenario) {
		singleSpecification  = scenario;
	}

		
	public static Specification1_8 spec1_8;

	
	public static Specification9 spec9;

	
	public static Specification6 spec6;

	
	public static Specification11 spec11;

	
	public static Specification3 spec3;

	
	public static Specification4 spec4;

	
	public static Specification7 spec7;

	
	public static Specification27 spec27;


}
